This invention relates to computer drawing systems.
Most conventional computer drawing systems include a set of drawing tools for modifying a vector object's outlines. An object's outline can be modified by applying a drawing tool to one or more control points along the objects outline or bounding box. The drawing tools, that are also referred to as point or curve editors, can be controlled by a user to perform operations such as moving a control point from one position to another position on a page where the object is represented, introducing new control points in the outline to provide a more detailed definition to a shape, and removing control points that are no longer needed.
Abstract control point manipulation functionality exists in a number of conventional computer drawing systems, such as Freehand® by Macromedia Incorporated (San Francisco, Calif.), and Adobe® Illustrator® by Adobe Systems Incorporated (San Jose, Calif.). This functionality is typically represented as a set of filters, through which a graphical object passes in order to produce a modified graphical object. Functionality for introducing detail by adding control points and simplifying shapes by removing control points are examples of such filters.
Enveloping is another method of abstracting control point manipulation, that exists in a number of drawing systems, such as Corel DRAW® and KPT Vector Effects®, both by Corel Corporation (Ottawa, Ontario, Canada). Envelopes perform shape-editing operations on a graphical object using another object as a guide. A typical example of enveloping is to use the outline of a shape to shrink and elongate letterforms to simulate the appearance of a banner curling in the wind. The banner shape, which is much simpler than the letterforms, is manipulated using standard point editing controls and all of the control points of the letterforms conform to the general shape of the controlling outline.
The concept of editing the overall sweep of a curve while preserving details of the curve has been discussed by Adam Finkelstein and David Salesin in “Multi-Resolution Curves” (Proceedings of SIGGRAPH '94, pages 261–268, ACM, New York, 1994). Their technique is based on a multi-resolution representation of a curve analogous to a Fourier series. A variant of this concept exists in Adobe® Illustrator®.
A number of computer drawing systems include a facility for performing Boolean operations such as union and difference on graphical shapes. Corel DRAW, extends this idea to permit an interactive shape union of an existing shape with the shape swept out by a circular brush.
Several computer paint systems include an image editing facility that enables the pixels of an image to “flow” according to gestures made with an input device in a fashion resembling the response of a physical viscous fluid.
Even though the drawing applications described above provide a flexible working environment for the users, they do exhibit some shortcomings. Some of these shortcomings will be described here.
When using filters to modify the curves of objects, the filter input variables are under user control, but the user generally does not control the area of their application. That is, the filtering operation is applied uniformly over the entire curve definition of the object.
Envelopes are a very powerful abstraction to control point editing, enabling the modification of numerous control points simultaneously, but are in most cases a poor choice when the goal is to refine the complexity of an object either by introducing or by eliminating control points.
Multi-resolution analysis shares the remapping strengths of enveloping while providing a mechanism for complexity refinement. The complexity refinement is generally analogous to filters, that is, the selective inclusion of different frequencies of detail in the curve is done on a curve-wide basis. Adding detail to the curve is accomplished by synthesizing a new series of frequencies. Selective refinement in the frequency domain makes local refinement in the spatial domain problematic, particularly from a user interface perspective.
Boolean shape operations are a powerful technique for assembling complex outlines from relatively simple outlines. However, if shape complexity is developed interactively through iterative Boolean shape operations between an existing shape and successive instances of a brush shape, curve definitions that suffer from two major shortcomings result. First, when the operation is complete, the resulting object has so many control points that the object becomes difficult to work with. Second, the resulting object appears computer generated and harsh; that is, the object lacks the smoothness and attention to curve continuity that designers typically give to their hand drawn shapes.
Finally, the techniques for performing pixel remappings do not generalize well to operating on curves comprised of control points, and are not appropriate for adding or removing curve detail.